package com.Stream流;


/*
*   Stream<T> sorted()：返回由此流的元素组成的流，根据自然顺序排序
    Stream<T> sorted(Comparator comparator)：返回由此流的元素组成的流，根据提供的Comparator进行排序
* */

import java.util.ArrayList;
import java.util.Comparator;
import java.util.stream.Stream;

public class StreamDemo_中间操作03 {
    public static void main(String[] args) {
        //创建一个集合，存储多个字符串元素
        ArrayList<String> list = new ArrayList<String>();

        list.add("lingqingxia");
        list.add("zhangmanyu");
        list.add("wangzuxian");
        list.add("liuyan");
        list.add("zhangmin");
        list.add("zhangwuji");

        //需求1：按照字母顺序吧数据在控制台输出
        list.stream().sorted().forEach(System.out::println);
        System.out.println("------------");
        //需求2：按照字符长度把数据在控制台输出
//        list.stream().sorted(new Comparator<String>() {
//            @Override
//            public int compare(String s1, String s2) {
//                int i = s1.length() - s2.length();
//                return i;
//            }
//        }).forEach(System.out::println);
        list.stream().sorted((s1, s2) -> {
            int num = s1.length() - s2.length();
            int num2 = num == 0 ? s1.compareTo(s2) : num;
            return num2;
        }).forEach(System.out::println);

    }
}
